home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 010 / games.arc / FREQ.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1980-01-01  |  2.5 KB  |  101 lines

  1. 100  CLS
  2. 110  SCREEN 0
  3. 120  WIDTH 80
  4. 130  KEY OFF
  5. 140  '
  6. 150  PRINT "***************************************
  7. 160  PRINT "**   Resonant Frequency Calculator   **
  8. 170  PRINT "**   Vers 1.1          Dec. 20,1982  **
  9. 180  PRINT "***************************************
  10. 190  '
  11. 200  LOCATE  6,1
  12. 210  PRINT "- Enter values or press enter to skip -"
  13. 220  PRINT "       (two values only please)"
  14. 230  '
  15. 240  LOCATE 10,1
  16. 250  INPUT "Frequency in hertz (resonate)     = ",F
  17. 260  INPUT "Capacitive reactance in ohms      = ",XC
  18. 270  INPUT "Inductive reactance in ohms       = ",XL
  19. 280  INPUT "Capacitance in pico-farads        = ",C
  20. 290  INPUT "inductance in micro-henries       = ",L
  21. 300  '
  22. 310  PI = 6.28318               '**  2 * pi
  23. 320  '
  24. 330  IF F = 0 THEN 400          '**  must calculate frequency
  25. 340  '
  26. 350  IF (XC <> 0) THEN GOSUB 1000 : GOTO 800
  27. 360  IF (XL <> 0) THEN GOSUB 1100 : GOTO 800
  28. 370  IF (C  <> 0) THEN GOSUB 1200 : GOTO 800
  29. 380  IF (L  <> 0) THEN GOSUB 1300 : GOTO 800
  30. 390  GOTO 900
  31. 400  '
  32. 410  IF (XC <> 0) AND (C <> 0) THEN GOSUB 1400 : GOTO 800
  33. 420  IF (XL <> 0) AND (C <> 0) THEN GOSUB 1430 : GOTO 800
  34. 430  IF (XL <> 0) AND (L <> 0) THEN GOSUB 1500 : GOTO 800
  35. 440  IF (XC <> 0) AND (L <> 0) THEN GOSUB 1530 : GOTO 800
  36. 450  IF (C <> 0)  AND (L <> 0) THEN GOSUB 1600 : GOTO 800
  37. 460  GOTO 900
  38. 470  '
  39. 800  '**  Routine to print values on screen
  40. 810  LOCATE 10,37 : PRINT F  : LOCATE 10,53 : PRINT "hz"
  41. 820  LOCATE 11,37 : PRINT XC : LOCATE 11,53 : PRINT "ohms
  42. 830  LOCATE 12,37 : PRINT XL : LOCATE 12,53 : PRINT "ohms
  43. 840  LOCATE 13,37 : PRINT C  : LOCATE 13,53 : PRINT "pf
  44. 850  LOCATE 14,37 : PRINT L  : LOCATE 14,53 : PRINT "uh
  45. 860  LOCATE 20,1 : INPUT "Press enter to continue - ",A$
  46. 870  CLEAR : POKE 106,0 : CLS : GOTO 150
  47. 880  '
  48. 900  '**  Error message routine - not enough data input
  49. 910  LOCATE 20,1
  50. 920  PRINT "Insufficient data to calculate values from
  51. 930  INPUT "Press enter to continue - ",A$
  52. 940  CLEAR : POKE 106,0 : CLS : GOTO 150
  53. 950  '
  54. 1000  '** Frequency and Xc are known
  55. 1010  C = 10^12 / ( PI * F * XC )
  56. 1020  XL = XC
  57. 1030  L = XL * 10^6 / ( PI * F )
  58. 1040  RETURN
  59. 1050  '
  60. 1100  '** Frequency and Xl are known
  61. 1110  L = XL * 10^6 / ( PI * F )
  62. 1120  XC = XL
  63. 1130  C = 10^12 / ( PI * F * XC )
  64. 1140  RETURN
  65. 1150  '
  66. 1200  '** Frequency and C are known
  67. 1210  XC = 10^12 / ( PI * F * C )
  68. 1220  XL = XC
  69. 1230  L = XL * 10^6 / ( PI * F )
  70. 1240  RETURN
  71. 1250  '
  72. 1300  '** Frequency and L are known
  73. 1310  XL = ( PI * F * L / 10^6 )
  74. 1320  XC = XL
  75. 1330  C = 10^12 / ( PI * F * XC )
  76. 1340  RETURN
  77. 1350  '
  78. 1400  '** XC and C are known
  79. 1410  XL = XC
  80. 1420  GOTO 1450
  81. 1430  '** XL and C are known
  82. 1440  XC = XL
  83. 1450  F = 10^12 / ( PI * C * XC )
  84. 1460  L = XL * 10^6 / ( PI * F )
  85. 1470  RETURN
  86. 1480  '
  87. 1500  '** XL and L are known
  88. 1510  XC = XL
  89. 1520  GOTO 1550
  90. 1530  '** XC and L are known
  91. 1540  XL = XC
  92. 1550  F = XL * 10^6 / ( PI * L )
  93. 1560  C = 10^12 / ( PI * XC * F )
  94. 1570  RETURN
  95. 1580  '
  96. 1600  '** C and L are known
  97. 1610  F = 10^9 / (PI * SQR( L * C ))
  98. 1620  XC = 10^12 / ( PI * F * C )
  99. 1630  XL = XC
  100. 1640  RETURN
  101.